home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1994 November / macformat-018.iso / Shareware City / Updaters / SCpp 7.0.3 Update / Lists.h next >
Encoding:
C/C++ Source or Header  |  1994-07-26  |  9.7 KB  |  263 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        Lists.h
  3.  
  4.     Copyright:    © 1984-1993 by Apple Computer, Inc., all rights reserved.
  5.  
  6.     WARNING
  7.     This file was auto generated by the interfacer tool. Modifications
  8.     must be made to the master file.
  9.  
  10. */
  11.  
  12. #pragma once
  13.  
  14. #ifndef __LISTS__
  15. #define __LISTS__
  16.  
  17. #ifndef __TYPES__
  18. #include <Types.h>
  19. /*    #include <ConditionalMacros.h>                                */
  20. /*    #include <MixedMode.h>                                        */
  21. /*        #include <Traps.h>                                        */
  22. #endif
  23.  
  24. #ifndef __CONTROLS__
  25. #include <Controls.h>
  26. /*    #include <Quickdraw.h>                                        */
  27. /*        #include <QuickdrawText.h>                                */
  28. /*            #include <IntlResources.h>                            */
  29. /*    #include <Menus.h>                                            */
  30. #endif
  31.  
  32. #ifndef __MEMORY__
  33. #include <Memory.h>
  34. #endif
  35.  
  36. enum  {
  37.     lDoVAutoscroll                = 2,
  38.     lDoHAutoscroll                = 1,
  39.     lOnlyOne                    = -128,
  40.     lExtendDrag                    = 64,
  41.     lNoDisjoint                    = 32,
  42.     lNoExtend                    = 16,
  43.     lNoRect                        = 8,
  44.     lUseSense                    = 4,
  45.     lNoNilHilite                = 2,
  46.     lInitMsg                    = 0,
  47.     lDrawMsg                    = 1,
  48.     lHiliteMsg                    = 2,
  49.     lCloseMsg                    = 3
  50. };
  51.  
  52. typedef Point Cell;
  53.  
  54. typedef char DataArray[32001], *DataPtr, **DataHandle;
  55.  
  56. typedef pascal short (*ListSearchProcPtr)(Ptr aPtr, Ptr bPtr, short aLen, short bLen);
  57.  
  58. enum {
  59.     uppListSearchProcInfo = kPascalStackBased
  60.          | RESULT_SIZE(SIZE_CODE(sizeof(short)))
  61.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Ptr)))
  62.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(Ptr)))
  63.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(short)))
  64.          | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(short)))
  65. };
  66.  
  67. #if USESROUTINEDESCRIPTORS
  68. typedef UniversalProcPtr ListSearchUPP;
  69.  
  70. #define CallListSearchProc(userRoutine, aPtr, bPtr, aLen, bLen)        \
  71.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppListSearchProcInfo, (aPtr), (bPtr), (aLen), (bLen))
  72. #define NewListSearchProc(userRoutine)        \
  73.         (ListSearchUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppListSearchProcInfo, GetCurrentISA())
  74. #else
  75. typedef ListSearchProcPtr ListSearchUPP;
  76.  
  77. #define CallListSearchProc(userRoutine, aPtr, bPtr, aLen, bLen)        \
  78.         (*(userRoutine))((aPtr), (bPtr), (aLen), (bLen))
  79. #define NewListSearchProc(userRoutine)        \
  80.         (ListSearchUPP)(userRoutine)
  81. #endif
  82.  
  83. typedef Boolean (*ListClickLoopProcPtr)(void);
  84.  
  85. enum {
  86.     uppListClickLoopProcInfo = kCStackBased
  87.          | RESULT_SIZE(SIZE_CODE(sizeof(Boolean)))
  88. };
  89.  
  90. #if USESROUTINEDESCRIPTORS
  91. typedef UniversalProcPtr ListClickLoopUPP;
  92.  
  93. #define CallListClickLoopProc(userRoutine)        \
  94.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppListClickLoopProcInfo)
  95. #define NewListClickLoopProc(userRoutine)        \
  96.         (ListClickLoopUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppListClickLoopProcInfo, GetCurrentISA())
  97. #else
  98. typedef ListClickLoopProcPtr ListClickLoopUPP;
  99.  
  100. #define CallListClickLoopProc(userRoutine)        \
  101.         (*(userRoutine))()
  102. #define NewListClickLoopProc(userRoutine)        \
  103.         (ListClickLoopUPP)(userRoutine)
  104. #endif
  105.  
  106. #if defined(powerc) || defined (__powerc)
  107. #pragma options align=mac68k
  108. #endif
  109. struct ListRec {
  110.     Rect                        rView;
  111.     GrafPtr                        port;
  112.     Point                        indent;
  113.     Point                        cellSize;
  114.     Rect                        visible;
  115.     ControlHandle                vScroll;
  116.     ControlHandle                hScroll;
  117.     char                        selFlags;
  118.     Boolean                        lActive;
  119.     char                        lReserved;
  120.     char                        listFlags;
  121.     long                        clikTime;
  122.     Point                        clikLoc;
  123.     Point                        mouseLoc;
  124.     ListClickLoopUPP            lClickLoop;
  125.     Cell                        lastClick;
  126.     long                        refCon;
  127.     Handle                        listDefProc;
  128.     Handle                        userHandle;
  129.     Rect                        dataBounds;
  130.     DataHandle                    cells;
  131.     short                        maxIndex;
  132.     short                        cellArray[1];
  133. };
  134. #if defined(powerc) || defined(__powerc)
  135. #pragma options align=reset
  136. #endif
  137.  
  138. typedef struct ListRec ListRec;
  139.  
  140. typedef ListRec *ListPtr, **ListHandle;
  141.  
  142. typedef pascal void (*ListDefProcPtr)(short lMessage, Boolean lSelect, Rect *lRect, Cell lCell, short lDataOffset, short lDataLen, ListHandle lHandle);
  143.  
  144. enum {
  145.     uppListDefProcInfo = kPascalStackBased
  146.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(short)))
  147.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(Boolean)))
  148.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(Rect*)))
  149.          | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(Cell)))
  150.          | STACK_ROUTINE_PARAMETER(5, SIZE_CODE(sizeof(short)))
  151.          | STACK_ROUTINE_PARAMETER(6, SIZE_CODE(sizeof(short)))
  152.          | STACK_ROUTINE_PARAMETER(7, SIZE_CODE(sizeof(ListHandle)))
  153. };
  154.  
  155. #if USESROUTINEDESCRIPTORS
  156. typedef UniversalProcPtr ListDefUPP;
  157.  
  158. #define CallListDefProc(userRoutine, lMessage, lSelect, lRect, lCell, lDataOffset, lDataLen, lHandle)        \
  159.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppListDefProcInfo, (lMessage), (lSelect), (lRect), (lCell), (lDataOffset), (lDataLen), (lHandle))
  160. #define NewListDefProc(userRoutine)        \
  161.         (ListDefUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppListDefProcInfo, GetCurrentISA())
  162. #else
  163. typedef ListDefProcPtr ListDefUPP;
  164.  
  165. #define CallListDefProc(userRoutine, lMessage, lSelect, lRect, lCell, lDataOffset, lDataLen, lHandle)        \
  166.         (*(userRoutine))((lMessage), (lSelect), (lRect), (lCell), (lDataOffset), (lDataLen), (lHandle))
  167. #define NewListDefProc(userRoutine)        \
  168.         (ListDefUPP)(userRoutine)
  169. #endif
  170.  
  171. #ifdef __cplusplus
  172. extern "C" {
  173. #endif
  174.  
  175. extern pascal ListHandle LNew(const Rect *rView, const Rect *dataBounds, Point cSize, short theProc, WindowPtr theWindow, Boolean drawIt, Boolean hasGrow, Boolean scrollHoriz, Boolean scrollVert)
  176.  THREEWORDINLINE(0x3F3C, 0x0044, 0xA9E7);
  177. extern pascal void LDispose(ListHandle lHandle)
  178.  THREEWORDINLINE(0x3F3C, 0x0028, 0xA9E7);
  179. extern pascal short LAddColumn(short count, short colNum, ListHandle lHandle)
  180.  THREEWORDINLINE(0x3F3C, 0x0004, 0xA9E7);
  181. extern pascal short LAddRow(short count, short rowNum, ListHandle lHandle)
  182.  THREEWORDINLINE(0x3F3C, 0x0008, 0xA9E7);
  183. extern pascal void LDelColumn(short count, short colNum, ListHandle lHandle)
  184.  THREEWORDINLINE(0x3F3C, 0x0020, 0xA9E7);
  185. extern pascal void LDelRow(short count, short rowNum, ListHandle lHandle)
  186.  THREEWORDINLINE(0x3F3C, 0x0024, 0xA9E7);
  187. extern pascal Boolean LGetSelect(Boolean next, Cell *theCell, ListHandle lHandle)
  188.  THREEWORDINLINE(0x3F3C, 0x003C, 0xA9E7);
  189. extern pascal Cell LLastClick(ListHandle lHandle)
  190.  THREEWORDINLINE(0x3F3C, 0x0040, 0xA9E7);
  191. extern pascal Boolean LNextCell(Boolean hNext, Boolean vNext, Cell *theCell, ListHandle lHandle)
  192.  THREEWORDINLINE(0x3F3C, 0x0048, 0xA9E7);
  193. extern pascal Boolean LSearch(const void *dataPtr, short dataLen, ListSearchUPP searchProc, Cell *theCell, ListHandle lHandle)
  194.  THREEWORDINLINE(0x3F3C, 0x0054, 0xA9E7);
  195. extern pascal void LSize(short listWidth, short listHeight, ListHandle lHandle)
  196.  THREEWORDINLINE(0x3F3C, 0x0060, 0xA9E7);
  197. extern pascal void LSetDrawingMode(Boolean drawIt, ListHandle lHandle)
  198.  THREEWORDINLINE(0x3F3C, 0x002C, 0xA9E7);
  199. extern pascal void LScroll(short dCols, short dRows, ListHandle lHandle)
  200.  THREEWORDINLINE(0x3F3C, 0x0050, 0xA9E7);
  201. extern pascal void LAutoScroll(ListHandle lHandle)
  202.  THREEWORDINLINE(0x3F3C, 0x0010, 0xA9E7);
  203. extern pascal void LUpdate(RgnHandle theRgn, ListHandle lHandle)
  204.  THREEWORDINLINE(0x3F3C, 0x0064, 0xA9E7);
  205. extern pascal void LActivate(Boolean act, ListHandle lHandle)
  206.  TWOWORDINLINE(0x4267, 0xA9E7);
  207. extern pascal void LCellSize(Point cSize, ListHandle lHandle)
  208.  THREEWORDINLINE(0x3F3C, 0x0014, 0xA9E7);
  209. extern pascal Boolean LClick(Point pt, short modifiers, ListHandle lHandle)
  210.  THREEWORDINLINE(0x3F3C, 0x0018, 0xA9E7);
  211. extern pascal void LAddToCell(const void *dataPtr, short dataLen, Cell theCell, ListHandle lHandle)
  212.  THREEWORDINLINE(0x3F3C, 0x000C, 0xA9E7);
  213. extern pascal void LClrCell(Cell theCell, ListHandle lHandle)
  214.  THREEWORDINLINE(0x3F3C, 0x001C, 0xA9E7);
  215. extern pascal void LGetCell(void *dataPtr, short *dataLen, Cell theCell, ListHandle lHandle)
  216.  THREEWORDINLINE(0x3F3C, 0x0038, 0xA9E7);
  217. extern pascal void LGetCellDataLocation(short *offset, short *len, Cell theCell, ListHandle lHandle)
  218.  THREEWORDINLINE(0x3F3C, 0x0034, 0xA9E7);
  219. extern pascal void LRect(Rect *cellRect, Cell theCell, ListHandle lHandle)
  220.  THREEWORDINLINE(0x3F3C, 0x004C, 0xA9E7);
  221. extern pascal void LSetCell(const void *dataPtr, short dataLen, Cell theCell, ListHandle lHandle)
  222.  THREEWORDINLINE(0x3F3C, 0x0058, 0xA9E7);
  223. extern pascal void LSetSelect(Boolean setIt, Cell theCell, ListHandle lHandle)
  224.  THREEWORDINLINE(0x3F3C, 0x005C, 0xA9E7);
  225. extern pascal void LDraw(Cell theCell, ListHandle lHandle)
  226.  THREEWORDINLINE(0x3F3C, 0x0030, 0xA9E7);
  227. extern void lclrcell(Cell *theCell, ListHandle lHandle);
  228. extern void lgetcelldatalocation(short *offset, short *len, Cell *theCell, ListHandle lHandle);
  229. extern void lgetcell(Ptr dataPtr, short *dataLen, Cell *theCell, ListHandle lHandle);
  230. extern void lrect(Rect *cellRect, Cell *theCell, ListHandle lHandle);
  231. extern void ldraw(Cell *theCell, ListHandle lHandle);
  232. #if __SC__ && !defined(powerc) && !defined(__powerc)
  233.  void laddtocell(Ptr dataPtr, int dataLen, Cell *theCell, ListHandle lHandle);
  234. extern ListHandle lnew(Rect *rView, Rect *dataBounds, Point *cSize, int theProc, WindowPtr theWindow, int drawIt, int HasGrow, int ScrollHoriz, int ScrollVert);
  235. extern void lsetcell(Ptr dataPtr, int dataLen, Cell *theCell, ListHandle lHandle);
  236. extern void lsetselect(int setIt, Cell *theCell, ListHandle lHandle);
  237. extern Boolean lclick(Point *pt, int modifiers, ListHandle lHandle);
  238. #else
  239.  void laddtocell(Ptr dataPtr, short dataLen, Cell *theCell, ListHandle lHandle);
  240. extern ListHandle lnew(Rect *rView, Rect *dataBounds, Point *cSize, short theProc, WindowPtr theWindow, Boolean drawIt, Boolean HasGrow, Boolean ScrollHoriz, Boolean ScrollVert);
  241. extern void lsetcell(Ptr dataPtr, short dataLen, Cell *theCell, ListHandle lHandle);
  242. extern void lsetselect(Boolean setIt, Cell *theCell, ListHandle lHandle);
  243. extern Boolean lclick(Point *pt, short modifiers, ListHandle lHandle);
  244. #endif
  245. extern void lcellsize(Point *cSize, ListHandle lHandle);
  246. #if OLDROUTINENAMES
  247. #define LDoDraw(drawIt, lHandle) LSetDrawingMode(drawIt, lHandle)
  248.  
  249. #define LFind(offset, len, theCell, lHandle)  \
  250.     LGetCellDataLocation(offset, len, theCell, lHandle)
  251.  
  252. #define lfind(offset, len, theCell, lHandle)  \
  253.     lgetcelldatalocation(offset, len, theCell, lHandle)
  254.  
  255. #endif
  256.  
  257. #ifdef __cplusplus
  258. }
  259. #endif
  260.  
  261. #endif
  262.  
  263.